地点間の距離を計算する2通りの方法を紹介.
ggmap
パッケージのgeocode
関数を使えば住所または地名から緯度?経度の座標を取得できる.
location
: 住所または地名の文字列ベクトルsource
: ジオコーディングに利用するサービスを指定, GoogleMapsAPI("google"
)またはData Science Toolkit("dsk"
)が利用可能, デフォルトは"google"
library(ggmap)
cities <- c("Hirosihma","Kyoto","Tokyo","Sapporo")
lonlat <- geocode(cities)
df <- data.frame(lonlat,row.names = cities)
df
## lon lat
## Hirosihma 132.4553 34.38520
## Kyoto 135.7680 35.01164
## Tokyo 139.6917 35.68949
## Sapporo 141.3544 43.06210
ggmap
パッケージのmapdist
関数を使えばGoogleMapを用いた地図上の道のり距離を計算できる. 始点from
と終点to
の住所または地名を入力することで、GoogleMapsApiに接続して計算する.
from
, to
: 始点と終点の住所または地名mode
: 移動手段として車"driving"
(デフォルト), 徒歩"walking"
, 自転車"bicycling"
から選択する広島と京都の地図上の道のり距離(車で移動):
mapdist(from = "Hiroshima", to = "Kyoto")
## from to m km miles seconds minutes hours
## 1 Hiroshima Kyoto 361152 361.152 224.4199 16692 278.2 4.636667
Imap
パッケージのgdist
関数を使えば楕円体上の距離を計算できる. デフォルトでは地球の軌道長半径(a
)と起動短半径(b
)が設定してあるので,地球の地表距離が計算される.
lon.1
, lat.1
: 始点の経度と緯度lat.2
, lat.2
: 終点の経度と緯度units
: 距離単位, デフォルトのnm
(海里)の他にメートルm
, キロメートル(‘km’), マイル(mile
)がある広島と京都の地表距離の計算例:
library(Imap)
gdist(lon.1 = df$lon[1], lat.1 = df$lat[1],
lon.2 = df$lon[2], lat.2 = df$lat[2],
units = "km")
## [1] 311.356